🎖️GitЯра🎖️
rnpaste.py HEAD (88f93ec1) Text, 23.83 KB
Tff7b72import T7ee787argparse
Tff7b72import T7ee787hashlib
Tff7b72import T7ee787json
Tff7b72import T7ee787os
Tff7b72import T7ee787time
Tff7b72import T7ee787sys
Tff7b72from T7ee787pathlib Tff7b72import Te6edf3Path
Tff7b72from T7ee787typing Tff7b72import Te6edf3AnyTb4b4b4, Te6edf3cast
Tff7b72import T7ee787msgpack
Te6edf3TTL_PRESETSTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Tffa657strTb4b4b4] Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffquickTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff1hTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdayTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff1dTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffweekTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff7dTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffmonthTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff30dTa5d6ff"Tb4b4b4,
Tb4b4b4}
Te6edf3SERVICE_APP_NAME Tff7b72= Ta5d6ff"Ta5d6ffrnpastedTa5d6ff"
Te6edf3SERVICE_ASPECT Tff7b72= Ta5d6ff"Ta5d6ffserviceTa5d6ff"
Te6edf3SERVICE_REQUEST_PATH Tff7b72= Ta5d6ff"Ta5d6ffrnpastedTa5d6ff"
Tff7b72def Td2a8ff_statusTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4, Tff7b72*Tb4b4b4, Te6edf3enabledTb4b4b4: Tffa657bool Tff7b72= Tff7b72TrueTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3enabledTb4b4b4:
Te6edf3sysTff7b72.Td2a8ffstderrTff7b72.Td2a8ffwriteTb4b4b4(Ta5d6fffTa5d6ff"Tffea00\rTffea00\033Ta5d6ff[KTffd700{Te6edf3messageTffd700}Ta5d6ff"Tb4b4b4)
Te6edf3sysTff7b72.Td2a8ffstderrTff7b72.Td2a8ffflushTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ff_status_doneTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4, Tff7b72*Tb4b4b4, Te6edf3enabledTb4b4b4: Tffa657bool Tff7b72= Tff7b72TrueTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3enabledTb4b4b4:
Te6edf3sysTff7b72.Td2a8ffstderrTff7b72.Td2a8ffwriteTb4b4b4(Ta5d6fffTa5d6ff"Tffea00\rTffea00\033Ta5d6ff[KTffd700{Te6edf3messageTffd700}Tffea00\nTa5d6ff"Tb4b4b4)
Te6edf3sysTff7b72.Td2a8ffstderrTff7b72.Td2a8ffflushTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ff_read_contentTb4b4b4(Te6edf3file_argTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72if Te6edf3file_arg Tff7b72== Ta5d6ff"Ta5d6ff-Ta5d6ff"Tb4b4b4:
Tff7b72import T7ee787sys
Tff7b72return Te6edf3sysTff7b72.Td2a8ffstdinTff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3PathTb4b4b4(Te6edf3file_argTb4b4b4)Tff7b72.Td2a8ffread_textTb4b4b4(Te6edf3encodingTff7b72=Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)
Tff7b72def Td2a8ff_pack_requestTb4b4b4(Te6edf3dataTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Tff7b72return Te6edf3castTb4b4b4(Tffa657bytesTb4b4b4, Te6edf3msgpackTff7b72.Td2a8ffpackbTb4b4b4(Te6edf3dataTb4b4b4, Te6edf3use_bin_typeTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72def Td2a8ff_unpack_responseTb4b4b4(Te6edf3payloadTb4b4b4: Tffa657bytesTb4b4b4) Tff7b72-Tff7b72> Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4:
Tff7b72return Te6edf3msgpackTff7b72.Td2a8ffunpackbTb4b4b4(Te6edf3payloadTb4b4b4, Te6edf3rawTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72def Td2a8ff_parse_durationTb4b4b4(Te6edf3valueTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3normalized Tff7b72= Te6edf3valueTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72if Tffa657lenTb4b4b4(Te6edf3normalizedTb4b4b4) Tff7b72< T79c0ff2Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffinvalid durationTa5d6ff"Tb4b4b4)
Te6edf3amount_partTb4b4b4, Te6edf3unit Tff7b72= Te6edf3normalizedTb4b4b4[Tb4b4b4:Tff7b72-T79c0ff1Tb4b4b4]Tb4b4b4, Te6edf3normalizedTb4b4b4[Tff7b72-T79c0ff1Tb4b4b4]
Tff7b72if Tff7b72not Te6edf3amount_partTff7b72.Td2a8ffisdigitTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffinvalid durationTa5d6ff"Tb4b4b4)
Te6edf3multiplier Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffmTa5d6ff"Tb4b4b4: T79c0ff60Tb4b4b4,
Ta5d6ff"Ta5d6ffhTa5d6ff"Tb4b4b4: T79c0ff3600Tb4b4b4,
Ta5d6ff"Ta5d6ffdTa5d6ff"Tb4b4b4: T79c0ff86400Tb4b4b4,
Ta5d6ff"Ta5d6ffwTa5d6ff"Tb4b4b4: T79c0ff604800Tb4b4b4,
Tb4b4b4}Tff7b72.Td2a8ffgetTb4b4b4(Te6edf3unitTb4b4b4)
Tff7b72if Te6edf3multiplier Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffinvalid durationTa5d6ff"Tb4b4b4)
Tff7b72return Tffa657intTb4b4b4(Te6edf3amount_partTb4b4b4) Tff7b72* Te6edf3multiplier
Tff7b72def Td2a8ff_require_rnsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72import T7ee787RNS
Tff7b72return Te6edf3RNS
Tff7b72def Td2a8ff_ensure_reticulumTb4b4b4(Te6edf3config_dirTb4b4b4: Tffa657str Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffReticulumTff7b72.Td2a8ffget_instanceTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3config_dirTb4b4b4:
Te6edf3RNSTff7b72.Td2a8ffReticulumTb4b4b4(Te6edf3configdirTff7b72=Te6edf3config_dirTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3RNSTff7b72.Td2a8ffReticulumTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ff_decode_destination_hashTb4b4b4(Te6edf3server_hashTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3normalized Tff7b72= Te6edf3server_hashTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3normalizedTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff"Ta5d6ff0xTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3normalized Tff7b72= Te6edf3normalizedTb4b4b4[T79c0ff2Tb4b4b4:Tb4b4b4]
Tff7b72tryTb4b4b4:
Te6edf3value Tff7b72= Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3normalizedTb4b4b4)
Tff7b72except Tf85149ValueError Tff7b72as Te6edf3excTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffServer destination hash must be a hex stringTa5d6ff"Tb4b4b4) Tff7b72from T7ee787exc
Tff7b72if Tff7b72not Te6edf3valueTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffServer destination hash cannot be emptyTa5d6ff"Tb4b4b4)
Tff7b72return Te6edf3value
Tff7b72def Td2a8ff_resolve_destinationTb4b4b4(
Te6edf3server_hashTb4b4b4: Tffa657strTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3app_nameTb4b4b4: Tffa657strTb4b4b4,
Te6edf3aspectTb4b4b4: Tffa657strTb4b4b4,
Te6edf3timeoutTb4b4b4: Tffa657float Tff7b72| Tff7b72NoneTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657objectTb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Te6edf3destination_hash Tff7b72= Te6edf3_decode_destination_hashTb4b4b4(Te6edf3server_hashTb4b4b4)
Te6edf3path_requested_at Tff7b72= T79c0ff0.0
Te6edf3deadline Tff7b72= Tff7b72None Tff7b72if Te6edf3timeout Tff7b72is Tff7b72None Tff7b72else Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72+ Te6edf3timeout
Tff7b72while Te6edf3deadline Tff7b72is Tff7b72None Tff7b72or Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72< Te6edf3deadlineTb4b4b4:
Tff7b72if Tff7b72not Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffhas_pathTb4b4b4(Te6edf3destination_hashTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72- Te6edf3path_requested_at Tff7b72>Tff7b72= T79c0ff2.0Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffrequest_pathTb4b4b4(Te6edf3destination_hashTb4b4b4)
Te6edf3path_requested_at Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3identity Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8ffrecallTb4b4b4(Te6edf3destination_hashTb4b4b4)
Tff7b72if Te6edf3identity Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72return Te6edf3RNSTff7b72.Td2a8ffDestinationTb4b4b4(
Te6edf3identityTb4b4b4,
Te6edf3RNSTff7b72.Td2a8ffDestinationTff7b72.Td2a8ffOUTTb4b4b4,
Te6edf3RNSTff7b72.Td2a8ffDestinationTff7b72.Td2a8ffSINGLETb4b4b4,
Te6edf3app_nameTb4b4b4,
Te6edf3aspectTb4b4b4,
Tb4b4b4)
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.1Tb4b4b4)
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffTimed out resolving destination path and identityTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ff_establish_linkTb4b4b4(Te6edf3destinationTb4b4b4: Tffa657objectTb4b4b4, Te6edf3timeoutTb4b4b4: Tffa657floatTb4b4b4) Tff7b72-Tff7b72> Tffa657objectTb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Te6edf3link Tff7b72= Te6edf3RNSTff7b72.Td2a8ffLinkTb4b4b4(Te6edf3destinationTb4b4b4)
Te6edf3deadline Tff7b72= Tff7b72None Tff7b72if Te6edf3timeout Tff7b72is Tff7b72None Tff7b72else Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72+ Te6edf3timeout
Tff7b72while Te6edf3deadline Tff7b72is Tff7b72None Tff7b72or Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72< Te6edf3deadlineTb4b4b4:
Tff7b72if Te6edf3linkTff7b72.Td2a8ffstatus Tff7b72== Te6edf3RNSTff7b72.Td2a8ffLinkTff7b72.Td2a8ffACTIVETb4b4b4:
Tff7b72return Te6edf3link
Tff7b72if Te6edf3linkTff7b72.Td2a8ffstatus Tff7b72== Te6edf3RNSTff7b72.Td2a8ffLinkTff7b72.Td2a8ffCLOSEDTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffLink closed before becoming activeTa5d6ff"Tb4b4b4)
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.1Tb4b4b4)
Tff7b72tryTb4b4b4:
Te6edf3linkTff7b72.Td2a8ffteardownTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffTimed out establishing Reticulum linkTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ff_send_requestTb4b4b4(
Te6edf3server_hashTb4b4b4: Tffa657strTb4b4b4,
Te6edf3payloadTb4b4b4: Tffa657bytesTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3app_nameTb4b4b4: Tffa657str Tff7b72= Te6edf3SERVICE_APP_NAMETb4b4b4,
Te6edf3aspectTb4b4b4: Tffa657str Tff7b72= Te6edf3SERVICE_ASPECTTb4b4b4,
Te6edf3request_pathTb4b4b4: Tffa657str Tff7b72= Te6edf3SERVICE_REQUEST_PATHTb4b4b4,
Te6edf3timeoutTb4b4b4: Tffa657float Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Te6edf3reticulum_configTb4b4b4: Tffa657str Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Te6edf3statusTb4b4b4: Te6edf3Any Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Tff7b72def Td2a8ffemitTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3status Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3statusTb4b4b4(Te6edf3messageTb4b4b4)
Te6edf3link Tff7b72= Te6edf3_open_linkTb4b4b4(
Te6edf3server_hashTb4b4b4,
Te6edf3app_nameTff7b72=Te6edf3app_nameTb4b4b4,
Te6edf3aspectTff7b72=Te6edf3aspectTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3timeoutTb4b4b4,
Te6edf3reticulum_configTff7b72=Te6edf3reticulum_configTb4b4b4,
Te6edf3statusTff7b72=Te6edf3emitTb4b4b4,
Tb4b4b4)
Tff7b72tryTb4b4b4:
Tff7b72return Te6edf3_send_request_over_linkTb4b4b4(
Te6edf3linkTb4b4b4,
Te6edf3payloadTb4b4b4,
Te6edf3request_pathTff7b72=Te6edf3request_pathTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3timeoutTb4b4b4,
Te6edf3statusTff7b72=Te6edf3emitTb4b4b4,
Tb4b4b4)
Tff7b72finallyTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3linkTff7b72.Td2a8ffteardownTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72def Td2a8ff_open_linkTb4b4b4(
Te6edf3server_hashTb4b4b4: Tffa657strTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3app_nameTb4b4b4: Tffa657strTb4b4b4,
Te6edf3aspectTb4b4b4: Tffa657strTb4b4b4,
Te6edf3timeoutTb4b4b4: Tffa657float Tff7b72| Tff7b72NoneTb4b4b4,
Te6edf3reticulum_configTb4b4b4: Tffa657str Tff7b72| Tff7b72NoneTb4b4b4,
Te6edf3statusTb4b4b4: Te6edf3Any Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657objectTb4b4b4:
Te6edf3_ensure_reticulumTb4b4b4(Te6edf3reticulum_configTb4b4b4)
Tff7b72def Td2a8ffemitTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3status Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3statusTb4b4b4(Te6edf3messageTb4b4b4)
Te6edf3emitTb4b4b4(Ta5d6ff"Ta5d6ffResolving destination...Ta5d6ff"Tb4b4b4)
Te6edf3destination Tff7b72= Te6edf3_resolve_destinationTb4b4b4(
Te6edf3server_hashTb4b4b4,
Te6edf3app_nameTff7b72=Te6edf3app_nameTb4b4b4,
Te6edf3aspectTff7b72=Te6edf3aspectTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3timeoutTb4b4b4,
Tb4b4b4)
Te6edf3emitTb4b4b4(Ta5d6ff"Ta5d6ffEstablishing link...Ta5d6ff"Tb4b4b4)
Tff7b72return Te6edf3_establish_linkTb4b4b4(Te6edf3destinationTb4b4b4, Te6edf3timeoutTff7b72=Te6edf3timeoutTb4b4b4)
Tff7b72def Td2a8ff_send_request_over_linkTb4b4b4(
Te6edf3linkTb4b4b4: Tffa657objectTb4b4b4,
Te6edf3payloadTb4b4b4: Tffa657bytesTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3request_pathTb4b4b4: Tffa657strTb4b4b4,
Te6edf3timeoutTb4b4b4: Tffa657float Tff7b72| Tff7b72NoneTb4b4b4,
Te6edf3statusTb4b4b4: Te6edf3Any Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffemitTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3status Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3statusTb4b4b4(Te6edf3messageTb4b4b4)
Te6edf3emitTb4b4b4(Ta5d6ff"Ta5d6ffSending request...Ta5d6ff"Tb4b4b4)
Te6edf3receipt Tff7b72= Te6edf3linkTff7b72.Td2a8ffrequestTb4b4b4(Te6edf3request_pathTb4b4b4, Te6edf3dataTff7b72=Te6edf3payloadTb4b4b4, Te6edf3timeoutTff7b72=Te6edf3timeoutTb4b4b4)
Tff7b72if Te6edf3receipt Tff7b72is Tff7b72FalseTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffRequest could not be sentTa5d6ff"Tb4b4b4)
Te6edf3emitTb4b4b4(Ta5d6ff"Ta5d6ffWaiting for response...Ta5d6ff"Tb4b4b4)
Te6edf3deadline Tff7b72= Tff7b72None Tff7b72if Te6edf3timeout Tff7b72is Tff7b72None Tff7b72else Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72+ Te6edf3timeout
Tff7b72while Te6edf3deadline Tff7b72is Tff7b72None Tff7b72or Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72< Te6edf3deadlineTb4b4b4:
Tff7b72if Te6edf3receiptTff7b72.Td2a8ffstatus Tff7b72== Te6edf3RNSTff7b72.Td2a8ffRequestReceiptTff7b72.Td2a8ffREADYTb4b4b4:
Te6edf3response Tff7b72= Te6edf3receiptTff7b72.Td2a8ffresponse
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3responseTb4b4b4, Tffa657bytesTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3response
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3responseTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657bytesTb4b4b4(Te6edf3responseTb4b4b4)
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffUnexpected response payload typeTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3receiptTff7b72.Td2a8ffstatus Tff7b72== Te6edf3RNSTff7b72.Td2a8ffRequestReceiptTff7b72.Td2a8ffFAILEDTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffRequest failed or timed outTa5d6ff"Tb4b4b4)
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.05Tb4b4b4)
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffTimed out waiting for responseTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ff_resolve_submit_languageTb4b4b4(Te6edf3file_argTb4b4b4: Tffa657strTb4b4b4, Te6edf3language_argTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Te6edf3explicit Tff7b72= Te6edf3language_argTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3explicitTb4b4b4:
Tff7b72return Te6edf3explicit
Tff7b72if Te6edf3file_arg Tff7b72== Ta5d6ff"Ta5d6ff-Ta5d6ff"Tb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6fftextTa5d6ff"
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787pygmentsT7ee787.T7ee787lexers Tff7b72import Te6edf3get_lexer_for_filename
Tff7b72from T7ee787pygmentsT7ee787.T7ee787util Tff7b72import Te6edf3ClassNotFound
Tff7b72tryTb4b4b4:
Te6edf3lexer Tff7b72= Te6edf3get_lexer_for_filenameTb4b4b4(Te6edf3PathTb4b4b4(Te6edf3file_argTb4b4b4)Tff7b72.Td2a8ffnameTb4b4b4)
Tff7b72except Te6edf3ClassNotFoundTb4b4b4:
Te6edf3lexer Tff7b72= Tff7b72None
Tff7b72if Te6edf3lexer Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3aliases Tff7b72= Tffa657listTb4b4b4(Tffa657getattrTb4b4b4(Te6edf3lexerTb4b4b4, Ta5d6ff"Ta5d6ffaliasesTa5d6ff"Tb4b4b4, Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3aliasesTb4b4b4:
Tff7b72return Tffa657strTb4b4b4(Te6edf3aliasesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6fftextTa5d6ff"
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Te6edf3suffix Tff7b72= Te6edf3PathTb4b4b4(Te6edf3file_argTb4b4b4)Tff7b72.Td2a8ffsuffixTff7b72.Td2a8fflstripTb4b4b4(Ta5d6ff"Ta5d6ff.Ta5d6ff"Tb4b4b4)Tff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3suffix Tff7b72or Ta5d6ff"Ta5d6fftextTa5d6ff"
Tff7b72def Td2a8ff_render_contentTb4b4b4(Te6edf3contentTb4b4b4: Tffa657strTb4b4b4, Te6edf3languageTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72if Tff7b72not Te6edf3sysTff7b72.Td2a8ffstdoutTff7b72.Td2a8ffisattyTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3content
Te6edf3language_name Tff7b72= Te6edf3languageTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3language_name Tff7b72or Te6edf3language_name Tff7b72== Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4:
Tff7b72return Te6edf3content
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787pygments Tff7b72import Te6edf3highlight
Tff7b72from T7ee787pygmentsT7ee787.T7ee787formatters Tff7b72import Te6edf3TerminalFormatter
Tff7b72from T7ee787pygmentsT7ee787.T7ee787lexers Tff7b72import Te6edf3get_lexer_by_name
Tff7b72from T7ee787pygmentsT7ee787.T7ee787util Tff7b72import Te6edf3ClassNotFound
Tff7b72tryTb4b4b4:
Te6edf3lexer Tff7b72= Te6edf3get_lexer_by_nameTb4b4b4(Te6edf3language_nameTb4b4b4)
Tff7b72except Te6edf3ClassNotFoundTb4b4b4:
Tff7b72return Te6edf3content
Tff7b72return Te6edf3highlightTb4b4b4(Te6edf3contentTb4b4b4, Te6edf3lexerTb4b4b4, Te6edf3TerminalFormatterTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72return Te6edf3content
Tff7b72def Td2a8ff_submit_stamp_message_idTb4b4b4(Te6edf3submit_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3payload Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsubmitTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffvisibilityTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffvisibilityTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ffpublicTa5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffpinnedTa5d6ff"Tb4b4b4: Tffa657boolTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffpinnedTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72return Te6edf3hashlibTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3msgpackTff7b72.Td2a8ffpackbTb4b4b4(Te6edf3payloadTb4b4b4, Te6edf3use_bin_typeTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)Tff7b72.Td2a8ffdigestTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ff_submit_signing_messageTb4b4b4(Te6edf3submit_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3payload Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsubmitTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffvisibilityTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffvisibilityTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ffpublicTa5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffpinnedTa5d6ff"Tb4b4b4: Tffa657boolTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffpinnedTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffexpires_inTa5d6ff"Tb4b4b4: Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffexpires_inTa5d6ff"Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3submit_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72return Te6edf3castTb4b4b4(Tffa657bytesTb4b4b4, Te6edf3msgpackTff7b72.Td2a8ffpackbTb4b4b4(Te6edf3payloadTb4b4b4, Te6edf3use_bin_typeTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72def Td2a8ff_admin_delete_signing_messageTb4b4b4(Te6edf3delete_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Te6edf3payload Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffadmin_deleteTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3delete_requestTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)Tff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72return Te6edf3castTb4b4b4(Tffa657bytesTb4b4b4, Te6edf3msgpackTff7b72.Td2a8ffpackbTb4b4b4(Te6edf3payloadTb4b4b4, Te6edf3use_bin_typeTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72def Td2a8ff_sign_submit_requestTb4b4b4(Te6edf3submit_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4, Tff7b72*Tb4b4b4, Te6edf3identity_pathTb4b4b4: Te6edf3PathTb4b4b4) Tff7b72-Tff7b72> Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Tffa657strTb4b4b4]Tb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Te6edf3identity Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8fffrom_fileTb4b4b4(Tffa657strTb4b4b4(Te6edf3identity_pathTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3identity Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffCould not load identity from Tffd700{Te6edf3identity_pathTffd700}Ta5d6ff"Tb4b4b4)
Te6edf3signature Tff7b72= Te6edf3identityTff7b72.Td2a8ffsignTb4b4b4(Te6edf3_submit_signing_messageTb4b4b4(Te6edf3submit_requestTb4b4b4)Tb4b4b4)
Te6edf3public_key Tff7b72= Te6edf3identityTff7b72.Td2a8ffget_public_keyTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Tffa657isinstanceTb4b4b4(Te6edf3signatureTb4b4b4, Tb4b4b4(Tffa657bytesTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffIdentity sign() did not return bytesTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72not Tffa657isinstanceTb4b4b4(Te6edf3public_keyTb4b4b4, Tb4b4b4(Tffa657bytesTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffIdentity get_public_key() did not return bytesTa5d6ff"Tb4b4b4)
Tff7b72return Tb4b4b4{
Ta5d6ff"Ta5d6ffsigner_idTa5d6ff"Tb4b4b4: Te6edf3identityTff7b72.Td2a8ffhashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffsigner_pubkeyTa5d6ff"Tb4b4b4: Tffa657bytesTb4b4b4(Te6edf3public_keyTb4b4b4)Tff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffsigner_sigTa5d6ff"Tb4b4b4: Tffa657bytesTb4b4b4(Te6edf3signatureTb4b4b4)Tff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72def Td2a8ff_sign_admin_delete_requestTb4b4b4(
Te6edf3delete_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3identity_pathTb4b4b4: Te6edf3PathTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Tffa657strTb4b4b4]Tb4b4b4:
Te6edf3RNS Tff7b72= Te6edf3_require_rnsTb4b4b4(Tb4b4b4)
Te6edf3identity Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8fffrom_fileTb4b4b4(Tffa657strTb4b4b4(Te6edf3identity_pathTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3identity Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffCould not load identity from Tffd700{Te6edf3identity_pathTffd700}Ta5d6ff"Tb4b4b4)
Te6edf3signature Tff7b72= Te6edf3identityTff7b72.Td2a8ffsignTb4b4b4(Te6edf3_admin_delete_signing_messageTb4b4b4(Te6edf3delete_requestTb4b4b4)Tb4b4b4)
Te6edf3public_key Tff7b72= Te6edf3identityTff7b72.Td2a8ffget_public_keyTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Tffa657isinstanceTb4b4b4(Te6edf3signatureTb4b4b4, Tb4b4b4(Tffa657bytesTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffIdentity sign() did not return bytesTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72not Tffa657isinstanceTb4b4b4(Te6edf3public_keyTb4b4b4, Tb4b4b4(Tffa657bytesTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffIdentity get_public_key() did not return bytesTa5d6ff"Tb4b4b4)
Tff7b72return Tb4b4b4{
Ta5d6ff"Ta5d6ffsigner_idTa5d6ff"Tb4b4b4: Te6edf3identityTff7b72.Td2a8ffhashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffsigner_pubkeyTa5d6ff"Tb4b4b4: Tffa657bytesTb4b4b4(Te6edf3public_keyTb4b4b4)Tff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffsigner_sigTa5d6ff"Tb4b4b4: Tffa657bytesTb4b4b4(Te6edf3signatureTb4b4b4)Tff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72def Td2a8ff_generate_submit_stamp_hexTb4b4b4(Te6edf3submit_requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4, Te6edf3stamp_costTb4b4b4: Tffa657intTb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787LXMF Tff7b72import Te6edf3LXStamper
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4: T8b949e# pragma: no cover
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffLXMF is not installedTa5d6ff"Tb4b4b4) Tff7b72from T7ee787exc
Te6edf3message_id Tff7b72= Te6edf3_submit_stamp_message_idTb4b4b4(Te6edf3submit_requestTb4b4b4)
Te6edf3stampTb4b4b4, Te6edf3_value Tff7b72= Te6edf3LXStamperTff7b72.Td2a8ffgenerate_stampTb4b4b4(Te6edf3message_idTb4b4b4, Te6edf3stamp_costTff7b72=Tffa657intTb4b4b4(Te6edf3stamp_costTb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72not Tffa657isinstanceTb4b4b4(Te6edf3stampTb4b4b4, Tb4b4b4(Tffa657bytesTb4b4b4, Tffa657bytearrayTb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Ta5d6ff"Ta5d6ffCould not generate LXMF stampTa5d6ff"Tb4b4b4)
Tff7b72return Tffa657bytesTb4b4b4(Te6edf3stampTb4b4b4)Tff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ff_discover_server_stamp_costTb4b4b4(
Te6edf3argsTb4b4b4: Te6edf3argparseTff7b72.Td2a8ffNamespaceTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3linkTb4b4b4: Tffa657objectTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657int Tff7b72| Tff7b72NoneTb4b4b4:
Te6edf3info_request Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffinfoTa5d6ff"Tb4b4b4}
Tff7b72tryTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffChecking server stamp cost...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3response Tff7b72= Te6edf3_unpack_responseTb4b4b4(
Te6edf3_send_request_over_linkTb4b4b4(
Te6edf3linkTb4b4b4,
Te6edf3_pack_requestTb4b4b4(Te6edf3info_requestTb4b4b4)Tb4b4b4,
Te6edf3request_pathTff7b72=Te6edf3SERVICE_REQUEST_PATHTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffError: stamp_cost_discovery_failedTa5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return Tff7b72None
Tff7b72if Tff7b72not Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffError: stamp_cost_discovery_failedTa5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return Tff7b72None
Te6edf3raw_cost Tff7b72= Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffsubmission_stamp_costTa5d6ff"Tb4b4b4, T79c0ff0Tb4b4b4)
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3raw_costTb4b4b4, Tffa657boolTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657intTb4b4b4(Te6edf3raw_costTb4b4b4)
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3raw_costTb4b4b4, Tffa657intTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657maxTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3raw_costTb4b4b4)
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3raw_costTb4b4b4, Tffa657floatTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657maxTb4b4b4(T79c0ff0Tb4b4b4, Tffa657intTb4b4b4(Te6edf3raw_costTb4b4b4)Tb4b4b4)
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3raw_costTb4b4b4, Tffa657strTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72return Tffa657maxTb4b4b4(T79c0ff0Tb4b4b4, Tffa657intTb4b4b4(Te6edf3raw_costTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72except Tf85149ValueErrorTb4b4b4:
Tff7b72return T79c0ff0
Tff7b72return T79c0ff0
Tff7b72def Td2a8ff_submitTb4b4b4(Te6edf3argsTb4b4b4: Te6edf3argparseTff7b72.Td2a8ffNamespaceTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffPreparing submit request...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3expires_arg Tff7b72= Te6edf3argsTff7b72.Td2a8ffexpires
Tff7b72if Tff7b72not Te6edf3expires_arg Tff7b72and Te6edf3argsTff7b72.Td2a8ffttlTb4b4b4:
Te6edf3expires_arg Tff7b72= Te6edf3TTL_PRESETSTff7b72.Td2a8ffgetTb4b4b4(Te6edf3argsTff7b72.Td2a8ffttlTb4b4b4, Te6edf3argsTff7b72.Td2a8ffttlTb4b4b4)
Te6edf3expires_in Tff7b72= Te6edf3_parse_durationTb4b4b4(Te6edf3expires_argTb4b4b4) Tff7b72if Te6edf3expires_arg Tff7b72else Tff7b72None
Te6edf3language Tff7b72= Te6edf3_resolve_submit_languageTb4b4b4(Te6edf3argsTff7b72.Td2a8fffileTb4b4b4, Te6edf3argsTff7b72.Td2a8fflanguageTb4b4b4)
Te6edf3request Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsubmitTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8fftitleTb4b4b4,
Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8ffauthorTb4b4b4,
Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4: Te6edf3languageTb4b4b4,
Ta5d6ff"Ta5d6ffvisibilityTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8ffvisibilityTb4b4b4,
Ta5d6ff"Ta5d6ffexpires_inTa5d6ff"Tb4b4b4: Te6edf3expires_inTb4b4b4,
Ta5d6ff"Ta5d6ffpinnedTa5d6ff"Tb4b4b4: Tffa657boolTb4b4b4(Te6edf3argsTff7b72.Td2a8ffpinTb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffproof_stampTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcontent_encodingTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4: Te6edf3_read_contentTb4b4b4(Te6edf3argsTff7b72.Td2a8fffileTb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72if Tffa657boolTb4b4b4(Te6edf3argsTff7b72.Td2a8ffsignTb4b4b4)Tb4b4b4:
Te6edf3identity_path Tff7b72= Te6edf3PathTb4b4b4(Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffexpanduserTb4b4b4(Tffa657strTb4b4b4(Te6edf3argsTff7b72.Td2a8ffidentityTb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3identity_pathTff7b72.Td2a8ffexistsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: identity_not_found: Tffd700{Te6edf3identity_pathTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1
Tff7b72tryTb4b4b4:
Te6edf3requestTff7b72.Td2a8ffupdateTb4b4b4(Te6edf3_sign_submit_requestTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3identity_pathTff7b72=Te6edf3identity_pathTb4b4b4)Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: sign_failed: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1
Tff7b72tryTb4b4b4:
Te6edf3link Tff7b72= Te6edf3_open_linkTb4b4b4(
Te6edf3argsTff7b72.Td2a8ffserverTb4b4b4,
Te6edf3app_nameTff7b72=Te6edf3SERVICE_APP_NAMETb4b4b4,
Te6edf3aspectTff7b72=Te6edf3SERVICE_ASPECTTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3reticulum_configTff7b72=Te6edf3argsTff7b72.Td2a8ffreticulum_configTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72tryTb4b4b4:
Te6edf3stamp_cost Tff7b72= T79c0ff0
Tff7b72if Tff7b72not Te6edf3requestTb4b4b4[Ta5d6ff"Ta5d6ffproof_stampTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3discovered Tff7b72= Te6edf3_discover_server_stamp_costTb4b4b4(Te6edf3argsTb4b4b4, Te6edf3linkTff7b72=Te6edf3linkTb4b4b4)
Tff7b72if Te6edf3discovered Tff7b72is Tff7b72NoneTb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6ff"Ta5d6ffError: stamp_cost_discovery_failed: could not query server infoTa5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1
Te6edf3stamp_cost Tff7b72= Te6edf3discovered
Tff7b72if Te6edf3stamp_cost Tff7b72> T79c0ff0 Tff7b72and Tff7b72not Te6edf3requestTb4b4b4[Ta5d6ff"Ta5d6ffproof_stampTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffGenerating LXMF proof stamp...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3requestTb4b4b4[Ta5d6ff"Ta5d6ffproof_stampTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3_generate_submit_stamp_hexTb4b4b4(
Te6edf3requestTb4b4b4, Te6edf3stamp_costTff7b72=Te6edf3stamp_cost
Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffError: stamp_generation_failed: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffSending submit request...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3payload Tff7b72= Te6edf3_pack_requestTb4b4b4(Te6edf3requestTb4b4b4)
Te6edf3response Tff7b72= Te6edf3_unpack_responseTb4b4b4(
Te6edf3_send_request_over_linkTb4b4b4(
Te6edf3linkTb4b4b4,
Te6edf3payloadTb4b4b4,
Te6edf3request_pathTff7b72=Te6edf3SERVICE_REQUEST_PATHTb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4)
Tff7b72finallyTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3linkTff7b72.Td2a8ffteardownTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: transport_error: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1
Tff7b72if Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4:
Tffa657printTb4b4b4(Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3responseTb4b4b4, Te6edf3indentTff7b72=T79c0ff2Tb4b4b4, Te6edf3sort_keysTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72return T79c0ff0
Tff7b72if Tff7b72not Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffError: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fferrorTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffmessageTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1
Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffPaste created.Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tffa657printTb4b4b4(Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffID: Tffd700{Te6edf3responseTb4b4b4[Ta5d6ff'Ta5d6ffidTa5d6ff'Tb4b4b4]Tffd700}Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffPage: Tffd700{Te6edf3responseTb4b4b4[Ta5d6ff'Ta5d6ffpageTa5d6ff'Tb4b4b4]Tffd700}Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffRaw: Tffd700{Te6edf3responseTb4b4b4[Ta5d6ff'Ta5d6ffrawTa5d6ff'Tb4b4b4]Tffd700}Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffExpires: Tffd700{Te6edf3responseTb4b4b4[Ta5d6ff'Ta5d6ffexpires_atTa5d6ff'Tb4b4b4]Tffd700}Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffSigned: Tffd700{Ta5d6ff'Ta5d6ffyesTa5d6ff' Tff7b72if Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffsignedTa5d6ff'Tb4b4b4) Tff7b72else Ta5d6ff'Ta5d6ffnoTa5d6ff'Tffd700}Ta5d6ff"Tb4b4b4)
Tff7b72if Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffsigner_idTa5d6ff"Tb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffSigner ID: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffsigner_idTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffDelete token: Tffd700{Te6edf3responseTb4b4b4[Ta5d6ff'Ta5d6ffdelete_tokenTa5d6ff'Tb4b4b4]Tffd700}Ta5d6ff"Tb4b4b4)
Tff7b72return T79c0ff0
Tff7b72def Td2a8ff_getTb4b4b4(Te6edf3argsTb4b4b4: Te6edf3argparseTff7b72.Td2a8ffNamespaceTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3request Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffgetTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8ffpaste_idTb4b4b4}
Tff7b72tryTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffSending get request...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3response Tff7b72= Te6edf3_unpack_responseTb4b4b4(
Te6edf3_send_requestTb4b4b4(
Te6edf3argsTff7b72.Td2a8ffserverTb4b4b4,
Te6edf3_pack_requestTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3reticulum_configTff7b72=Te6edf3argsTff7b72.Td2a8ffreticulum_configTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: transport_error: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1
Tff7b72if Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4:
Tffa657printTb4b4b4(Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3responseTb4b4b4, Te6edf3indentTff7b72=T79c0ff2Tb4b4b4, Te6edf3sort_keysTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72return T79c0ff0
Tff7b72if Tff7b72not Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffError: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fferrorTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffmessageTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1
Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffPaste fetched.Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tffa657printTb4b4b4(Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffID:Ta5d6ff"Tb4b4b4, Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffTitle:Ta5d6ff"Tb4b4b4, Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffAuthor:Ta5d6ff"Tb4b4b4, Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffauthorTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffLanguage:Ta5d6ff"Tb4b4b4, Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffSigned:Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffyesTa5d6ff" Tff7b72if Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffsignedTa5d6ff"Tb4b4b4) Tff7b72else Ta5d6ff"Ta5d6ffnoTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffSigner ID:Ta5d6ff"Tb4b4b4, Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffsigner_idTa5d6ff"Tb4b4b4) Tff7b72or Ta5d6ff"Ta5d6ffn/aTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ff---Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Tb4b4b4)
Te6edf3content Tff7b72= Te6edf3_render_contentTb4b4b4(
Tffa657strTb4b4b4(Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tffa657strTb4b4b4(Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fflanguageTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tffa657printTb4b4b4(Te6edf3contentTb4b4b4, Te6edf3endTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72return T79c0ff0
Tff7b72def Td2a8ff_deleteTb4b4b4(Te6edf3argsTb4b4b4: Te6edf3argparseTff7b72.Td2a8ffNamespaceTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3request Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdeleteTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8ffpaste_idTb4b4b4,
Ta5d6ff"Ta5d6ffdelete_tokenTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8fftokenTb4b4b4,
Tb4b4b4}
Tff7b72tryTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffSending delete request...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3response Tff7b72= Te6edf3_unpack_responseTb4b4b4(
Te6edf3_send_requestTb4b4b4(
Te6edf3argsTff7b72.Td2a8ffserverTb4b4b4,
Te6edf3_pack_requestTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3reticulum_configTff7b72=Te6edf3argsTff7b72.Td2a8ffreticulum_configTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: transport_error: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1
Tff7b72if Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4:
Tffa657printTb4b4b4(Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3responseTb4b4b4, Te6edf3indentTff7b72=T79c0ff2Tb4b4b4, Te6edf3sort_keysTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72return T79c0ff0
Tff7b72if Tff7b72not Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffError: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fferrorTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffmessageTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1
Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffPaste deleted.Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff0
Tff7b72def Td2a8ff_admin_deleteTb4b4b4(Te6edf3argsTb4b4b4: Te6edf3argparseTff7b72.Td2a8ffNamespaceTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3requestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4] Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffopTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffadmin_deleteTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Te6edf3argsTff7b72.Td2a8ffpaste_idTb4b4b4,
Tb4b4b4}
Te6edf3identity_path Tff7b72= Te6edf3PathTb4b4b4(Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffexpanduserTb4b4b4(Tffa657strTb4b4b4(Te6edf3argsTff7b72.Td2a8ffidentityTb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3identity_pathTff7b72.Td2a8ffexistsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: identity_not_found: Tffd700{Te6edf3identity_pathTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1
Tff7b72tryTb4b4b4:
Te6edf3requestTff7b72.Td2a8ffupdateTb4b4b4(Te6edf3_sign_admin_delete_requestTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3identity_pathTff7b72=Te6edf3identity_pathTb4b4b4)Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: sign_failed: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1
Tff7b72tryTb4b4b4:
Te6edf3_statusTb4b4b4(Ta5d6ff"Ta5d6ffSending admin delete request...Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Te6edf3response Tff7b72= Te6edf3_unpack_responseTb4b4b4(
Te6edf3_send_requestTb4b4b4(
Te6edf3argsTff7b72.Td2a8ffserverTb4b4b4,
Te6edf3_pack_requestTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4,
Te6edf3timeoutTff7b72=Te6edf3argsTff7b72.Td2a8fftimeoutTb4b4b4,
Te6edf3reticulum_configTff7b72=Te6edf3argsTff7b72.Td2a8ffreticulum_configTb4b4b4,
Te6edf3statusTff7b72=Tff7b72lambda Te6edf3messageTb4b4b4: Te6edf3_statusTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3excTb4b4b4:
Te6edf3_status_doneTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError: transport_error: Tffd700{Te6edf3excTffd700}Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff1
Tff7b72if Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4:
Tffa657printTb4b4b4(Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3responseTb4b4b4, Te6edf3indentTff7b72=T79c0ff2Tb4b4b4, Te6edf3sort_keysTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4)
Tff7b72return T79c0ff0
Tff7b72if Tff7b72not Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3_status_doneTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffError: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fferrorTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff: Tffd700{Te6edf3responseTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffmessageTa5d6ff'Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4,
Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4,
Tb4b4b4)
Tff7b72return T79c0ff1
Te6edf3_status_doneTb4b4b4(Ta5d6ff"Ta5d6ffPaste deleted by admin.Ta5d6ff"Tb4b4b4, Te6edf3enabledTff7b72=Tff7b72not Te6edf3argsTff7b72.Td2a8ffjsonTb4b4b4)
Tff7b72return T79c0ff0
Tff7b72def Td2a8ffbuild_parserTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Te6edf3argparseTff7b72.Td2a8ffArgumentParserTb4b4b4:
Te6edf3parser Tff7b72= Te6edf3argparseTff7b72.Td2a8ffArgumentParserTb4b4b4(Te6edf3progTff7b72=Ta5d6ff"Ta5d6ffrnpasteTa5d6ff"Tb4b4b4, Te6edf3descriptionTff7b72=Ta5d6ff"Ta5d6ffrnpaste CLITa5d6ff"Tb4b4b4)
Te6edf3parserTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--reticulum-configTa5d6ff"Tb4b4b4,
Te6edf3defaultTff7b72=Tff7b72NoneTb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffReticulum config directory (optional)Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3parserTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--timeoutTa5d6ff"Tb4b4b4,
Te6edf3defaultTff7b72=Tff7b72NoneTb4b4b4,
Tffa657typeTff7b72=Tffa657floatTb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffRequest timeout in seconds (defaults to unbounded)Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3sub Tff7b72= Te6edf3parserTff7b72.Td2a8ffadd_subparsersTb4b4b4(Te6edf3destTff7b72=Ta5d6ff"Ta5d6ffcommandTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3submit Tff7b72= Te6edf3subTff7b72.Td2a8ffadd_parserTb4b4b4(Ta5d6ff"Ta5d6ffsubmitTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffSubmit a pasteTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffInput file path or - for stdinTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--serverTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffDestination hashTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--titleTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--authorTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--languageTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--visibilityTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ffpublicTa5d6ff"Tb4b4b4, Te6edf3choicesTff7b72=Tb4b4b4[Ta5d6ff"Ta5d6ffpublicTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffunlistedTa5d6ff"Tb4b4b4]Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--expiresTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Tff7b72NoneTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffExpiry duration, e.g. 1h, 1d, 7dTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--ttlTa5d6ff"Tb4b4b4, Te6edf3defaultTff7b72=Tff7b72NoneTb4b4b4, Te6edf3choicesTff7b72=Tb4b4b4[Ta5d6ff"Ta5d6ffquickTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdayTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffweekTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffmonthTa5d6ff"Tb4b4b4]Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--pinTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffPin paste (never expires)Ta5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--signTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffSign submit payload with Reticulum identityTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--identityTa5d6ff"Tb4b4b4,
Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ff~/.rnpaste/identityTa5d6ff"Tb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffPath to Reticulum identity file used for --signTa5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--jsonTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4)
Te6edf3submitTff7b72.Td2a8ffset_defaultsTb4b4b4(Te6edf3funcTff7b72=Te6edf3_submitTb4b4b4)
Te6edf3get Tff7b72= Te6edf3subTff7b72.Td2a8ffadd_parserTb4b4b4(Ta5d6ff"Ta5d6ffgetTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffGet a paste by IDTa5d6ff"Tb4b4b4)
Te6edf3getTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ffpaste_idTa5d6ff"Tb4b4b4)
Te6edf3getTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--serverTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffDestination hashTa5d6ff"Tb4b4b4)
Te6edf3getTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--jsonTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4)
Te6edf3getTff7b72.Td2a8ffset_defaultsTb4b4b4(Te6edf3funcTff7b72=Te6edf3_getTb4b4b4)
Te6edf3delete Tff7b72= Te6edf3subTff7b72.Td2a8ffadd_parserTb4b4b4(Ta5d6ff"Ta5d6ffdeleteTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffDelete paste by ID and tokenTa5d6ff"Tb4b4b4)
Te6edf3deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ffpaste_idTa5d6ff"Tb4b4b4)
Te6edf3deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--serverTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffDestination hashTa5d6ff"Tb4b4b4)
Te6edf3deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--tokenTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--jsonTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4)
Te6edf3deleteTff7b72.Td2a8ffset_defaultsTb4b4b4(Te6edf3funcTff7b72=Te6edf3_deleteTb4b4b4)
Te6edf3admin_delete Tff7b72= Te6edf3subTff7b72.Td2a8ffadd_parserTb4b4b4(Ta5d6ff"Ta5d6ffadmin-deleteTa5d6ff"Tb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffAdmin delete paste by ID using signed identityTa5d6ff"Tb4b4b4)
Te6edf3admin_deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ffpaste_idTa5d6ff"Tb4b4b4)
Te6edf3admin_deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--serverTa5d6ff"Tb4b4b4, Te6edf3requiredTff7b72=Tff7b72TrueTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffDestination hashTa5d6ff"Tb4b4b4)
Te6edf3admin_deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--identityTa5d6ff"Tb4b4b4,
Te6edf3defaultTff7b72=Ta5d6ff"Ta5d6ff~/.rnpasted/identityTa5d6ff"Tb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffPath to Reticulum identity file used for admin signatureTa5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3admin_deleteTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--jsonTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffstore_trueTa5d6ff"Tb4b4b4)
Te6edf3admin_deleteTff7b72.Td2a8ffset_defaultsTb4b4b4(Te6edf3funcTff7b72=Te6edf3_admin_deleteTb4b4b4)
Tff7b72return Te6edf3parser
Tff7b72def Td2a8ffmainTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3parser Tff7b72= Te6edf3build_parserTb4b4b4(Tb4b4b4)
Te6edf3args Tff7b72= Te6edf3parserTff7b72.Td2a8ffparse_argsTb4b4b4(Tb4b4b4)
Tff7b72return Tffa657intTb4b4b4(Te6edf3argsTff7b72.Td2a8fffuncTb4b4b4(Te6edf3argsTb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4: T8b949e# pragma: no cover
Tff7b72raise Tf85149SystemExitTb4b4b4(Te6edf3mainTb4b4b4(Tb4b4b4)Tb4b4b4)
Served by rngit 1.5.0 - Generated in 0.26s